package ua.vn.ticket_scanner.nfc.utils;

/**
 * Created by Ivan on 14.06.13.
 */
public class Converter {

    public static long toDec(byte[] bytes) {
        if(bytes == null) {
            return -1;
        }
        long result = 0;
        long factor = 1;
        for (int i = 0; i < bytes.length; ++i) {
            long value = bytes[i] & 0xffl;
            result += value * factor;
            factor *= 256l;
        }
        return result;
    }

    public static String toHex(byte[] bytes) {
        if(bytes == null) {
            return "null";
        }
        StringBuilder sb = new StringBuilder();
        for (int i = bytes.length - 1; i >= 0; --i) {
            int b = bytes[i] & 0xff;
            if (b < 0x10)
                sb.append('0');
            sb.append(Integer.toHexString(b));
            if (i > 0) {
                sb.append(" ");
            }
        }
        return sb.toString();
    }

    public static String toString(byte[] bytes) {
        if(bytes == null) {
            return "null";
        }
        StringBuilder builder = new StringBuilder();
        for(byte unit : bytes) {
            builder.append((char)unit);
        }
        return builder.toString();
    }

    public static byte[] toBytes(String string) {
        byte[] bytes = new byte[16];
        byte[] stringBytes = string.getBytes();
        for(int index = 0; index < bytes.length; index++) {
            if(index < stringBytes.length)
                bytes[index] = stringBytes[index];
            else
                bytes[index] = ' ';
        }
        return bytes;
    }
}
